home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / earcd / phase5 / ppcrelease / libmfd / w_j0.c < prev    next >
C/C++ Source or Header  |  1998-02-21  |  1KB  |  66 lines

  1.  
  2. /* @(#)w_j0.c 1.3 95/01/18 */
  3. /*
  4.  * ====================================================
  5.  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
  6.  *
  7.  * Developed at SunSoft, a Sun Microsystems, Inc. business.
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software is freely granted, provided that this notice 
  10.  * is preserved.
  11.  * ====================================================
  12.  */
  13.  
  14. /*
  15.  * wrapper j0(double x), y0(double x)
  16.  */
  17.  
  18. #include "fdlibm.h"
  19.  
  20. #ifdef __STDC__
  21.     double j0(double x)        /* wrapper j0 */
  22. #else
  23.     double j0(x)            /* wrapper j0 */
  24.     double x;
  25. #endif
  26. {
  27. #ifdef _IEEE_LIBM
  28.     return __ieee754_j0(x);
  29. #else
  30.     double z = __ieee754_j0(x);
  31.     if(_LIB_VERSION == _IEEE_ || isnan(x)) return z;
  32.     if(fabs(x)>X_TLOSS) {
  33.             return __kernel_standard(x,x,34); /* j0(|x|>X_TLOSS) */
  34.     } else
  35.         return z;
  36. #endif
  37. }
  38.  
  39. #ifdef __STDC__
  40.     double y0(double x)        /* wrapper y0 */
  41. #else
  42.     double y0(x)            /* wrapper y0 */
  43.     double x;
  44. #endif
  45. {
  46. #ifdef _IEEE_LIBM
  47.     return __ieee754_y0(x);
  48. #else
  49.     double z;
  50.     z = __ieee754_y0(x);
  51.     if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z;
  52.         if(x <= 0.0){
  53.                 if(x==0.0)
  54.                     /* d= -one/(x-x); */
  55.                     return __kernel_standard(x,x,8);
  56.                 else
  57.                     /* d = zero/(x-x); */
  58.                     return __kernel_standard(x,x,9);
  59.         }
  60.     if(x>X_TLOSS) {
  61.             return __kernel_standard(x,x,35); /* y0(x>X_TLOSS) */
  62.     } else
  63.         return z;
  64. #endif
  65. }
  66.